Automated optical inspection systems are used in many applications for inspecting various types of devices to ensure, for example, that the devices satisfy certain design characteristics. For instance, in the field of electronics, various devices, such as printed circuit boards (PCBs) are often inspected using automated optical inspection systems. With such automated optical inspection systems, a device under inspection (e.g., a PCB) is imaged (e.g., to capture visual or X-ray image data thereof), and the captured image data is analyzed by a processing system to determine whether the device satisfies certain design characteristics. For example, the automated analysis of a PCB may determine whether the PCB includes certain components, whether the components are arranged properly, whether solder joints are present and of proper size/shape, etc. By performing this automated inspection to detect those devices that do not comply with certain design characteristics, devices that are not of sufficiently high quality (e.g., that are likely to fail in their operation) can be identified and filtered before being implemented in a system and/or released to consumers.
Very often, the number of components on an object under inspection (e.g., the capacitors, resistors, integrated circuits, etc. on a PCB under inspection) may be on the order of hundreds or thousands. Therefore, quality inspection directly by the human eye is often not reliable and economically feasible. For this purpose, companies, such as Agilent Technologies, VISIONx Inc, Omron Electronics LLC, Altest Corporation, and others, manufacture specialized automated optical inspection devices, like the Agilent SJ50 Series II and SP50 testers. In general, these systems are based on high quality real-time pictures of the object under inspection and decision-making algorithms that analyze the captured pictures to find possible faults in the manufacturing process.
Traditionally, a “model” or “template” (sometimes referred to as a “golden template”) defining how an object under inspection is expected to appear is used for comparison with a captured image of the object under inspection to analyze whether the object under inspection is acceptable. That is, a comparison is made to determine whether there is any deviation in the captured image of the object under inspection from the template. Traditional methods typically utilize correlational analysis for comparing captured image data of an object under inspection with a template for such object. For example, a pixel-by-pixel comparison may be performed between the captured image and the template.
In many instances, however, variations in the captured images of an object from the template are not indicative of a problem. For example, a slight change in the amount of solder used at certain points on a PCB may cause the captured image thereof to deviate from the template, but the slight change may nevertheless be acceptable. As another example, components (e.g., capacitors, resistors, etc.) may be oriented slightly differently on a PCB than specified in a template, which may cause the captured image of the PCB to deviate from the template, but such PCB may nevertheless be acceptable. As another example, a component may be colored (e.g., painted) differently than specified in a template, but such component may nevertheless be acceptable. In other words, just because the captured image of an object under inspection deviates somewhat from the template often does not necessarily mean that the object under inspection is unacceptable (i.e., the object may still function properly).
So, template correlation is not itself a complete solution. To account for all acceptable variations, a large number of templates, each defining an acceptable variation, may be used. Because thousands of different appearances may be considered acceptable, implementing such a large number of templates is a very expensive method. For instance, a lot of time and/or resources (e.g., manpower) are required for determining the various templates that correspond to acceptable variations. Further, an undesirably large amount of storage capacity is required for storing the large number of templates. Additionally, the efficiency of the inspection process is hindered because of the increased number of comparisons required in determining whether a captured image matches any of the various templates.
In certain techniques, rather than performing correlation on a full template of a design, certain portions of the template are used for the correlational analysis. For example, certain joints (e.g., solder joints) on a PCB, which are a small portion of the template, may be analyzed. That is, a region of the captured image data corresponding to a region of the template may be compared for inspection of the object, rather than comparing the full captured image with the full template. Thus, while the template may consume thousands and sometimes millions of pixels, such template may be subdivided into smaller regions of interest that are used for the correlational analysis.
As an example, a template for an object (e.g., PCB) may be subdivided into, say, a 10×16 pixel region that is of interest. During the inspection process, the corresponding 10×16 pixel region of a captured image of an object under inspection may be compared with the 10×16 region of the template. More particularly, a pixel-by-pixel comparison may be performed for the 10×16 regions, thus resulting in a total of 160 comparisons to determine the amount of deviation in this region of the captured image relative to this region of the template.
While the number of comparisons required to be performed may be reduced by subdividing the template in the above manner (e.g., 160 comparisons may be performed, rather than thousands or millions of comparisons that may be required for comparing the full captured image with the full template), the correlational methods used may, as mentioned above, fail to allow for certain variations in a captured image that are not indicative of a problem. For example, an insubstantial difference in the region of the captured image that is being compared with the template may result in a large deviation computed by the correlational method. Just because the region of the captured image of an object under inspection deviates from the corresponding region of the template often does not necessarily mean that the object under inspection is unacceptable (i.e., the object may still function properly). Thus, templates for various acceptable variations of the region of interest may be required, which increases the number of comparisons that may be required (e.g., in order to compare a region of the captured image with a plurality of different acceptable templates for such region).
Further, creating the subdivided templates is a time-consuming task that is typically performed manually by a knowledgeable person. For instance, when a new PCB is developed, it sometimes takes weeks or even months for a knowledgeable person to determine all the suitable subdivisions of a template, including the acceptable variations, to be used for automated optical inspection of the product.
Various examples of prior automated optical inspection systems can be found in U.S. Pat. No. 5,640,200 titled “GOLDEN TEMPLATE COMPARISON USING EFFICIENT IMAGE REGISTRATION”; U.S. Pat. No. 5,640,199 titled “AUTOMATED OPTICAL INSPECTION APPARATUS”; U.S. Pat. No. 5,532,739 titled “AUTOMATED OPTICAL INSPECTION APPARATUS”; U.S. Pat. No. 4,972,359 titled “DIGITAL IMAGE PROCESSING SYSTEM”; and U.S. Pat. No. 5,333,052 titled “METHOD AND APPARATUS FOR AUTOMATIC OPTICAL INSPECTION”.